package br.com.financas.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import br.com.financas.bean.LoginBean;

@WebFilter(servletNames = { "Faces Servlet" })
public class ControleDeAcesso implements Filter {
	LoginBean loginBean = new LoginBean();

	@Override
	public void destroy() {
		// TODO Auto-generated method stub

	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest) request;
		HttpSession session = req.getSession();

		if (session.getAttribute("usuario") != null
				|| req.getRequestURI().endsWith("login.xhtml")
				|| req.getRequestURI().endsWith("cadastrar-usuario.xhtml")
				|| req.getServletPath().contains("/javax.faces.resource")) {
			chain.doFilter(request, response);
			loginBean.setAcesso(1);

		} else {
			HttpServletResponse res = (HttpServletResponse) response;
			res.sendRedirect("login.xhtml");
		}

		/*if (req.isRequestedSessionIdValid()) {
			if (session.getAttribute("usuario") != null
					&& req.getRequestURI().endsWith("login.xhtml")
					&& loginBean.getAcesso() > 6) {
				HttpServletResponse resp = (HttpServletResponse) response;
				resp.sendRedirect("index.xhtml");

			}
		}*/

	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub

	}

}
